import { post, get } from '@/utils/request'

export default class Follow {
  /**
   * 关注
   * @param {int} entityType 对象类型（1：帖子，2：评论, 3: 用户）
   * @param {int} entityId 对象id
   * @returns
   */
  static async follow(entityType, entityId) {
    return post('/follow', {
      entityType,
      entityId
    })
  }

  /**
   * 取关
   * @param {int} entityType 对象类型（1：帖子，2：评论, 3: 用户）
   * @param {int} entityId 对象id
   * @returns
   */
  static async unfollow(entityType, entityId) {
    return post('/unfollow', {
      entityType,
      entityId
    })
  }

  /**
   * 关注状态 false 未关注 true 已关注
   * @param {int} entityType 对象类型（1：帖子，2：评论, 3: 用户）
   * @param {int} entityId 对象id
   * @returns
   */
  static async getFollowStatus(entityType, entityId) {
    return get('/follow', {
      entityType,
      entityId
    })
  }

  /**
   * 关注实体数量
   * @param {int} userId 用户id
   * @param {int} entityType 对象类型（1：帖子，2：评论, 3: 用户）
   * @returns
   */
  static async getFolloweeCount(userId, entityType) {
    return get('/followee/count', {
      userId,
      entityType
    })
  }

  /**
   * 关注者数量
   * @param {int} entityType 对象类型（1：帖子，2：评论, 3: 用户）
   * @param {int} entityId 对象id
   * @returns
   */
  static async getFollowerCount(entityType, entityId) {
    return get('/follower/count', {
      entityType,
      entityId
    })
  }

  /**
   * 关注用户分页查询
   * @param {int} userId 用户id
   * @param {int} current 当前页码
   * @param {int} limit 每页条数
   * @returns
   */
  static async getFollowees(userId, current, limit) {
    return get('/followee/' + userId, {
      current,
      limit
    })
  }

  /**
   * 粉丝分页查询
   * @param {int} userId 用户id
   * @param {int} current 当前页码
   * @param {int} limit 每页条数
   * @returns
   */
  static async getFollowers(userId, current, limit) {
    return get('/follower/' + userId, {
      current,
      limit
    })
  }
}
